Metal-oxide-semiconductor ("MOS") electrically programmable read-only memories ("EPROMs") frequently use memory cells that have electrically isolated gates which are referred to as floating gates. Information is stored in the memory cells in the form of charge on the floating gates.
One type of prior EPROM is the flash erasable and electrically programmable read-only memory ("flash EPROM"). The flash EPROM can be programmed by a user, and once programmed, the flash EPROM retains its data until erased. Once programmed, the contents of flash EPROM can be erased by electrical erasure. The flash EPROM may then be reprogrammed with new codes or data.
One type of prior flash EPROM typically includes redundant memory cells and CAM cells in addition to a main memory array. The redundant memory cells are used to replace defective cells of the main memory array. The redundant memory cells are also arranged into rows and columns and are therefore referred to as redundant memory array. When a memory cell in a column of the main memory array is found defective, a redundant column of the redundant memory array is used to replace the defective column in the main memory array.
The CAM cells are typically used to activate the redundant memory array to replace any defective columns of the main memory array. The CAM cells typically comprise flash EPROM cells. The CAM cells are typically arranged into groups in order to be programmed to store addresses of the defective memory columns of the main memory array. The grouped CAM cells are therefore referred to as CAM sets.
A typical prior arrangement of using the redundant memory columns and the CAM sets to replace defective columns in the main memory array employs a number of the CAM sets, each associated with one redundant column so that all the redundant columns can be accessed. When a defective column in the main memory array is discovered, a redundant column is activated to replace the defective column. This is done by storing the address of the defective column in a CAM set associated with the redundant column. A comparison with the stored address is made every time the prior flash EPROM is addressed to determine whether a cell in the defective column is addressed. If so, the redundant column associated with the CAM set is activated for the read, programming, or erasing operation of the defective column. If not, the redundant column associated with the CAM set is not activated.
Disadvantages are, however, associated with the prior arrangement. One disadvantage associated is that the prior arrangement typically requires a large number of CAM sets and therefore a large number of CAM cells to activate a large member of redundant columns. For example, to activate forty redundant columns would require forty sets of CAM cells. The large number of CAM cells typically occupy relatively large space on the memory chip. This either results in an increase in die size of the prior flash EPROM if a predetermined storage capacity is maintained or a decrease in storage capacity of the prior flash EPROM if the die size remains unchanged.
One prior approach to solving the problem is to introduce encoding to reduce the number of the CAM sets. A typical example is to reduce the number of the CAM sets to half the number of the redundant columns. The redundant columns are identified as odd redundant columns and even redundant columns. Accordingly, the columns of the main memory array are also divided into odd columns and even columns. The odd redundant columns can replace odd defective columns of the main memory array and the even redundant columns can replace even defective columns of the main memory array. Each CAM set is associated with one odd redundant column and one even redundant column. Each CAM set activates its associative odd redundant column or its associative even redundant column depending upon the stored address. If the stored address indicates that the defective column in the main memory array is an odd column, then the CAM set activates its associative odd redundant column to replace the odd defective column in the main memory array. If the stored address indicates that the defective column is an even column in the main memory array, then the CAM set activates its associative even redundant column to replace the even defective column in the main memory array.
Disadvantages are associated with such prior approach. One disadvantage associated is that when the main memory array is organized into bit line blocks and the redundant memory array is accordingly organized into redundant blocks, the ability of activating a redundant column in a redundant block to replace a defective column in the associative main block is limited by the odd-to-odd even-to-even encoding. For example, when each of the redundant blocks includes two odd redundant columns and two even redundant columns, only two defective columns in the associative main block can be replaced. When there are three odd or even defective columns in the main block, the third one cannot be replaced even though there are two unused redundant columns in that redundant block and many empty CAM sets.